From 75f96b83de6ab547220b1ce2cbaf03087f365412 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 3 Nov 2020 15:26:47 -0500 Subject: [PATCH] surface: Be more lenient for autohide When an event happens on a non-grabbing popup that hangs off a grabbing popup, don't trigger the autohide. This makes touch text handles work inside the popover on page 3 of widget-factory. --- gdk/gdksurface.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gdk/gdksurface.c b/gdk/gdksurface.c index f28c6ac4d1..00990ea40e 100644 --- a/gdk/gdksurface.c +++ b/gdk/gdksurface.c @@ -2695,7 +2695,10 @@ check_autohide (GdkEvent *event) device = gdk_event_get_device (event); if (gdk_device_grab_info (display, device, &grab_surface, NULL)) { - if (grab_surface != gdk_event_get_surface (event) && + GdkSurface *event_surface = gdk_event_get_surface (event); + + if (grab_surface != event_surface && + grab_surface != event_surface->parent && grab_surface->autohide) { hide_popup_chain (grab_surface); -- 2.30.2